package com.fingard.dsp.bank.directbank.fngrd01.util;

public class StringHelper {
	/**
	 * 将 byte 转换为 16进制表示字符串，如果转换后只有1个字符，则在前面补 0
	 * @param sourceBytes 待转换的数据
	 * @return 16进制字符串
	 */
	public static String bytesToHexString(byte[] sourceBytes)
	{
		if(sourceBytes == null || sourceBytes.length == 0)
			return "";
		StringBuffer buffer = new StringBuffer(sourceBytes.length * 2);
		for(byte sourceByte : sourceBytes)
		{
			buffer.append(getHexChar((sourceByte>>4) & 0x0f))
				  .append(getHexChar(sourceByte & 0x0f));
		}
		return buffer.toString();
	}
	/**
	 * 根据值获取对应的 16 进制表示字符
	 * @param charValue
	 * @return
	 */
	private static char getHexChar(int charValue)
	{
		if(charValue <= 9)
			return (char)('0' + charValue);
		else
			return (char)('a' + charValue - 10);
	}
	/**
	 * 从字符串中获取两个标签之间的内容
	 * @param source 源数据字符串 
	 * @param start 开始标签
	 * @param end 结束标签
	 * @return
	 */
	public static String GetMiddleString(String source, String start, String end)
	{
		if(isNullOrEmpty(source))
			return null;
		int startIndex, endIndex;
		startIndex = source.indexOf(start);
		endIndex = source.indexOf(end);
		if(startIndex >= 0 && endIndex > startIndex)
			return source.substring(startIndex + start.length(), endIndex);
		return null;
	}
	/**
	 * 判断字符串是否为空或者 null
	 * @param source
	 * @return
	 */
	public static boolean isNullOrEmpty(String source)
	{
		if(source == null || source.length() == 0)
			return true;
		return false;
	}
}
